Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models of assembly designs. A number of different modeling techniques can be used to create a model of an assembly. These techniques include solid modeling, wire-frame modeling, and surface modeling. Solid modeling techniques provide for topological 3D models, where the 3D model is a collection of interconnected vertices, edges, and faces, for example. Geometrically, a 3D solid model is a collection of trimmed surfaces. The trimmed surfaces correspond to the topological faces bounded by the edges. Wire-frame modeling techniques, on the other hand, can be used to represent a model as a collection of simple 3D lines, whereas surface modeling can be used to represent a model as a collection of exterior surfaces. CAD systems may combine these and other modeling techniques, such as parametric modeling techniques. Parametric modeling techniques can be used to define various parameters for different features and components of a model, and to define relationships between those features and components based on relationships between the various parameters.
A design engineer is a typical user of a 3D CAD system. The design engineer designs physical and aesthetic aspects of 3D models, and is skilled in 3D. modeling techniques. The design engineer creates parts and may assemble the parts into one or more subassemblies. In addition to parts, a subassembly may also consist of other subassemblies. Using parts and subassemblies, the design engineer designs an assembly. Hereinafter, parts and subassemblies are collectively referred to as components.
In addition to design engineers, engineers in other disciplines may use 3D CAD systems. For example, a manufacturing engineer may use a 3D CAD system to view, and possibly modify, a component to address manufacturing processes used to build the component.
An engineer using a 3D CAD system frequently needs to select an entity in a component, such as a vertex, an edge, or a face. When a CAD model is not displayed as a wire-frame model or when a complex CAD model is displayed as a wire-frame model, an entity that the engineer wishes to select may be hidden by another entity. The engineer may be able to transform the model to make the hidden entity visible. For example, to select the back face of a part currently displayed on a computer screen, the engineer may be able to rotate the model until the back face becomes visible. However, in some cases, the back face may not become visible because the back face becomes obscured by another entity.
Manipulating the clipping planes, which determine the portion of the 3D modeling space that is rendered in a modeling window, may also remove obscuring objects. Employing this technique, however, may still require translation or rotation of the model to position the model in such a way as to eliminate obscuring entities. Even then, the entity that the engineer may want to select can still be hidden by another entity.
To address the drawbacks of only being able to transform the model and the modeling space to make obscured entities visible, some commercially available 3D CAD systems provide software tools that allow the selection of obscured entities without having to transform the model. These software tools, however, do not remove the obscuring entities and require the engineer to envision where the desired entity would appear on the computer display if not concealed by one or more other entities. Once the engineer envisions the location of the desired entity, he or she uses a pointing device to position a cursor at the envisioned location and indicates to the 3D CAD system the intention to select an obscured entity (e.g., by pressing a key on the keyboard while pressing a mouse button).
The 3D CAD system then produces a list of entities positioned beneath the cursor location. To produce the entity list, the 3D CAD system executes a procedure that constructs an imaginary line, known as a ray, through the model beginning at the cursor location and in an inward direction perpendicular to the x and y screen axes. The procedure then generates a list of all entities through which the ray passes (possibly within some tolerance value) and presents that list to the engineer, in some cases one entity at a time. If and when the desired entity is presented, the engineer indicates that the desired entity is indeed the entity he or she intends to select.
The entity list may be presented in a dialog box and each entity in the list identified by a system- or user-defined name (e.g., the name of a front face listed above the name of a back face). Alternatively, the entities in the list may be presented by highlighting the entities one at a time in the modeling area. A further presentation technique may allow the user to move the cursor over an entity list in a dialog box thereby causing the respective entity in the modeling area to be highlighted. A 3D CAD system typically highlights the outline of the entities and allows the outline to bleed through other obscuring entities, meaning that even though an entity is behind another, the entity can be perceived by the engineer. Generally, the entities are highlighted one at a time to distinguish each entity from another and to avoid a visually confusing representation of the CAD model. Whether the entities are presented by name in a dialog box or are highlighted in the modeling area, or a combination of both presentation methods, when the desired entity is presented, the engineer must indicate that the desired entity is to be selected (e.g., by selecting the entity name in a dialog box or by pressing a “Yes” button in a dialog box after the desired entity is highlighted).
The process just described consisting of generating a list of entities, presenting the entities in the list to the engineer, and allowing the engineer to indicate which entity to select contains fundamental drawbacks. One drawback is that the engineer must predict the location of the entity he or she wants to select. Being able to predict where the entity would be displayed if visible may be problematic. For small entities more often than large, the engineer may have difficulty placing the cursor over the desired entity. Therefore, many times the entity an engineer wants to select is not included in the entity list generated by the 3D CAD system.
Another drawback is that the engineer may not be able to recognize an entity's name or a highlighted entity when presented. If an entity name is unrecognizable, the engineer must reference another source to discover the name. If several entities are highlighted at once, the engineer may not be able to distinguish one entity from another. Moreover, the engineer's familiarity with a model determines the difficulty that he or she will have in determining which entity is highlighted due to the physical and positional similarities of various entities.
A further drawback is that the process does not permit the engineer to utilize the commonly used selection technique of pointing to an entity and clicking a mouse button. The way in which the engineer indicates that an obscured entity is desired for selection varies among 3D CAD systems. However, using current state of the art 3D CAD systems, pointing to an entity and pressing a mouse button in the way that entities are customarily selected is not possible for the purpose of selecting obscured entities. Rather, the engineer is required to press a mouse button while the cursor is located at an area of the computer screen other than where the entity being selected is positioned. That is, the engineer must concentrate on a dialog box or another user interface element that lists the entity names or awaits confirmation or rejection of a highlighted entity.
A 3D CAD system that addresses the foregoing drawbacks and thereby enables engineers to quickly select obscured entities in a manner in which engineers commonly select entities would enhance the capabilities and ease of use of such a 3D CAD system.